using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Marlimer.Common;
using Marlimer.Logical.Almacen;
using Marlimer.Comercial.Reportes.Crystals;  


namespace Marlimer.Comercial.Reportes.Formularios
{
    public partial class frm_RepKardexValorizado : Form
    {
        lalm_Presentacion lalm_presentacion = new lalm_Presentacion(); 
        lalm_Producto lalm_producto = new lalm_Producto();
        rptRepKardexValorizado RptRepKardexValorizado = new rptRepKardexValorizado();
        rptRepKardexValorizadoResumen RptRepKardexValorizadoResumen = new rptRepKardexValorizadoResumen();
        rptRepKardexResumenCross RptRepKardexResumenCross = new rptRepKardexResumenCross();
        List<InfoParamRpt> paramsrpt = new List<InfoParamRpt>();

        public frm_RepKardexValorizado()
        {
            InitializeComponent();
        }

        private void CargarCombos()
        {
            Util.LlenarDataCombo(lalm_presentacion.getDTPresentacion(), cboPresentacion, true);
        }

        private void frm_RepKardexValorizado_Load(object sender, EventArgs e)
        {
            dtpFecIni.Value = DateTime.Today;
            dtpFecFin.Value = DateTime.Today;

            CargarCombos();
            this.Location = new Point(0, 0); 
        }

        private void nuevaBusqueda()
        {
            CargarCombos();
            txtCodProducto.Text = "";
            txtDescripcion.Text = "";
        }

        private void btnNuevaBus_Click(object sender, EventArgs e)
        {
            nuevaBusqueda();
        }


        private void cboGeneral_KeyPress(object sender, KeyPressEventArgs e)
        {
            Util.validaEnter(e.KeyChar);
        }

        private void txtCodProducto_Leave(object sender, EventArgs e)
        {
            Boolean ingreso = false;

            if (Util.ToValor(txtCodProducto.Text) > 0)
            {
                DataTable dt = lalm_producto.getProductoDatosByCod(Convert.ToInt32(txtCodProducto.Text));
                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        txtDescripcion.Text = Convert.ToString(Util.getValueDT("cdes_prod", 0, dt));
                    }
                    else
                    {
                        ingreso = true;
                    }
                }
                else
                {
                    ingreso = true;
                }
            }
            else
            {
                ingreso = true;
            }
            if (ingreso)
            {
                txtDescripcion.Text = "";
                txtCodProducto.Text = "";
            }
        }


        private void txtGeneralEntero_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = Util.validaTecla(e.KeyChar, "Entero", ((TextBox)sender).Text, true);
        }

        private void txtGeneral_Enter(object sender, EventArgs e)
        {
            Util.selectAllText((TextBox)sender);
        }

        private void tstComandos_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            int indice = tstComandos.Items.IndexOf(e.ClickedItem);
            switch (indice)
            {
                case 0:     //nuevo
                    {
                        nuevaBusqueda();
                        break;
                    }
                case 1:     //imprimir o mostrar
                    {
                        CargarReporte();
                        break;
                    }
                case 2:
                    {
                        if (rbtDetDocumento.Checked)
                        {
                            Util.exportReporte(RptRepKardexValorizado);
                        }
                        else if (rbtResumenProducto.Checked)
                        {
                            Util.exportReporte(RptRepKardexValorizadoResumen);
                        }
                        else if (rbtResumenXProductoCross.Checked)
                        {
                            Util.exportReporte(RptRepKardexResumenCross);
                        }
                        break;
                    }
            }
        }

        private void CargarReporte()
        {
            //validar de que se haya ingresado por lo menos un dato

            /*if (txtCodProducto.Text.Trim() != "" || Convert.ToInt32(cboPresentacion.SelectedValue)>0)
            {*/

                int ctipo_fil = 0;
                if (Util.ToValor(txtCodProducto.Text) > 0)
                {
                    ctipo_fil = 1;
                }
                else
                {
                    ctipo_fil = 2;
                }
                //establecemos los parametros
                paramsrpt.Clear();
                paramsrpt.Add(new InfoParamRpt("@dfec_ini", dtpFecIni.Value));
                paramsrpt.Add(new InfoParamRpt("@dfec_fin", dtpFecFin.Value));
                paramsrpt.Add(new InfoParamRpt("@ccod_prod", Convert.ToInt32(Util.ToValor(txtCodProducto.Text))));
                paramsrpt.Add(new InfoParamRpt("@ccod_pres", Convert.ToInt32(cboPresentacion.SelectedValue)));
                paramsrpt.Add(new InfoParamRpt("@ctipo_fil", ctipo_fil));

                //verificar segun tipo de formato    
                //llamar al rpt segun el tipo de documento
                try
                {
                    if (rbtDetDocumento.Checked)
                    {
                        crpReporte.ReportSource = Util.setRptParams(RptRepKardexValorizado, paramsrpt);
                    }
                    else if (rbtResumenProducto.Checked)
                    {
                        crpReporte.ReportSource = Util.setRptParams(RptRepKardexValorizadoResumen, paramsrpt);
                    }
                    else if (rbtResumenXProductoCross.Checked)
                    {
                        crpReporte.ReportSource = Util.setRptParams(RptRepKardexResumenCross, paramsrpt);
                    }
                    
                    tblExportar.Enabled = true;
                }
                catch (Exception ex)
                {
                    tblExportar.Enabled = false;
                }
            /*}
            else
            {
                MessageBox.Show("Debe ingresar el codigo de producto o seleccionar la presentacion.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }*/
        }

        private void rbtSeleccion_CheckedChanged(object sender, EventArgs e)
        {
            if (rbtPorProducto.Checked)
            {
                txtCodProducto.Enabled = true;
                cboPresentacion.Enabled = false;
                cboPresentacion.SelectedIndex = -1;

            }
            else
            {
                txtCodProducto.Text = "";
                txtDescripcion.Text = "";
                cboPresentacion.Enabled = true;
                txtCodProducto.Enabled = false; 
            }
        }

    }
}